package com.my.structuraltype.proxy.cglib;
/**
 * CGLib (Code Generation Library) 是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。
 * Hibernate用它来实现PO字节码的动态生成。CGLib 比 Java 的 java.lang.reflect.Proxy 类更强的在于它不仅可以接管接口类的方法，还可以接管普通类的方法。
CGLib 的底层是Java字节码操作框架 —— ASM。
 */
public class Test {

	public static void main(String[] args) {
		BookFacadeCglib cglib=new BookFacadeCglib();  
        BookFacadeImpl bookCglib=(BookFacadeImpl)cglib.getInstance(new BookFacadeImpl()); 
        bookCglib.addBook("thinking in java");  
        
        BookFacadeImpl bookCglib2 = cglib.getProxy(BookFacadeImpl.class);
        bookCglib2.addBook("thinking in c++");
	}

}
